package org.example.classtopia.Service;

import org.example.classtopia.Model.dto.ReportCreateDTO;
import org.example.classtopia.Model.dto.ReportHandleDTO;
import org.example.classtopia.Model.dto.ReportQueryDTO;
import org.example.classtopia.Model.vo.PageResultVO;
import org.example.classtopia.Model.vo.ReportListVO;
import org.example.classtopia.Model.vo.ReportVO;

public interface ReportService {
    
    /**
     * 创建举报
     */
    Long createReport(ReportCreateDTO reportCreateDTO);
    
    /**
     * 根据ID查询举报详情
     */
    ReportVO getReportById(Long id);
    
    /**
     * 分页查询用户的举报记录
     */
    PageResultVO<ReportListVO> getMyReports(Long reporterId, Integer page, Integer size);
    
    /**
     * 分页查询所有举报（管理员用）
     */
    PageResultVO<ReportListVO> getReportsPage(ReportQueryDTO queryDTO);
    
    /**
     * 处理举报
     */
    void handleReport(ReportHandleDTO handleDTO);
}
